package com.wqnmdb.im.utils;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;

import java.security.SecureRandom;
import java.util.UUID;

@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class UUIDUtil {

	public static String gen() {
		return UUID.randomUUID().toString().replaceAll("-", "");
	}

	public static String genDouble() {
		return UUID.randomUUID().toString().replaceAll("-", "") + UUID.randomUUID().toString().replaceAll("-", "");
	}
	
	private final static String[] chars = new String[] {
			"a", "b", "c", "d", "e", "f", "g", "h", "i","j", "k", "l", 
			"m", "n", "o", "p", "q", "r", "s", "t", "u", "v","w", "x", "y", "z", 
			"0", "1", "2", "3", "4", "5","6", "7", "8", "9", 
			"a", "b", "c", "d", "e", "f", "g", "h", "i","j", "k", "l", 
			"m", "n", "o", "p", "q", "r", "s", "t", "u", "v","w", "x", "y", "z"
			};

	public static String genShort() {
		StringBuffer shortBuffer = new StringBuffer();
		String uuid = UUID.randomUUID().toString().replace("-", "");
		for (int i = 0; i < 8; i++) {
			String str = uuid.substring(i * 4, i * 4 + 4);
			int x = Integer.parseInt(str, 16);
			shortBuffer.append(chars[x % 0x3E]);
		}
		//前后各加入一个混淆1位数字
	    SecureRandom random = new SecureRandom();
	    int head = random.nextInt(8) + 1;
	    int foot = random.nextInt(8) + 1;
		return head + shortBuffer.toString() + foot;
	}
}
